home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / MAME / src / drivers / exedexes.c < prev    next >
C/C++ Source or Header  |  2000-04-04  |  15KB  |  410 lines

  1. /***************************************************************************
  2.  
  3. Exed Exes memory map (preliminary) - RD 29/07/97
  4.  
  5. MAIN CPU
  6. 0000-bfff ROM
  7. d000-d3ff Character Video RAM
  8. d400-d7ff Character Color RAM
  9. e000-efff RAM
  10. f000-ffff Sprites
  11.         Sprite information (4 bytes long) is stored every 32 bytes in the
  12.         regions f000-f5ff and f800-fbff, possibly in other areas as well.
  13.  
  14.         Sprite Data layout:
  15.                 Byte 0 - Sprite number 0-255
  16.                 Byte 1 - bits 0 to 3 Sprite color 0-15
  17.                        - bit 4 Sprite x-flip
  18.                        - bit 5 Sprite y-flip
  19.                        - bit 6 ?
  20.                        - bit 7 Sprite Y position MSB
  21.                 Byte 2 - Sprite X position
  22.                 Byte 3 - Sprite Y position
  23.  
  24.         The background consists of two vertically scrolling layers, one made
  25.         up of 16x16 tiles similarly to 1942, the other made up of smaller
  26.         8x8 or perhaps 8x16 tiles. The 16x16 tiled foreground is dislayed on
  27.         top of the 8x? tiled background in a similar way to Star Force.
  28.  
  29. read:
  30. c000      IN0 Coin and start switches
  31. c001      IN1 Joystick 1
  32. c002      IN2 Joystick 2
  33. c003      DSW1 ?
  34. c004      DSW2 ?
  35.  
  36. write:
  37. c800 Sound command
  38. c804 Coin ack ?
  39. c806 ?
  40. d800-d83f only seems to use:
  41.     d800-d801 near background y-scroll
  42.     d802-d803 near background x-scroll
  43.         d804-d805 8x? tile vertical scroll
  44.         d806-d807 ?
  45.  
  46. SOUND CPU
  47. 0000-3fff ROM
  48. 4000-47ff RAM
  49.  
  50. write:
  51. 8000      YM2203 #1 control
  52. 8001      YM2203 #1 write
  53. 8002      YM2203 #2 control ?
  54. 8003      YM2203 #2 write ?
  55.  
  56. ***************************************************************************/
  57.  
  58. #include "driver.h"
  59. #include "vidhrdw/generic.h"
  60.  
  61.  
  62.  
  63. WRITE_HANDLER( c1942_bankswitch_w );
  64. READ_HANDLER( c1942_bankedrom_r );
  65. int c1942_interrupt(void);
  66.  
  67. extern unsigned char *exedexes_bg_scroll;
  68. extern unsigned char *exedexes_nbg_yscroll;
  69. extern unsigned char *exedexes_nbg_xscroll;
  70. void exedexes_vh_convert_color_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom);
  71. void exedexes_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
  72.  
  73.  
  74.  
  75. static struct MemoryReadAddress readmem[] =
  76. {
  77.     { 0x0000, 0xbfff, MRA_ROM },
  78.     { 0xc000, 0xc000, input_port_0_r },
  79.     { 0xc001, 0xc001, input_port_1_r },
  80.     { 0xc002, 0xc002, input_port_2_r },
  81.     { 0xc003, 0xc003, input_port_3_r },
  82.     { 0xc004, 0xc004, input_port_4_r },
  83.     { 0xe000, 0xefff, MRA_RAM }, /* Work RAM */
  84.     { 0xf000, 0xffff, MRA_RAM }, /* Sprite RAM */
  85.     { -1 }    /* end of table */
  86. };
  87.  
  88. static struct MemoryWriteAddress writemem[] =
  89. {
  90.     { 0x0000, 0xbfff, MWA_ROM },
  91.     { 0xc800, 0xc800, soundlatch_w },
  92.     { 0xc806, 0xc806, MWA_NOP }, /* Watchdog ?? */
  93.     { 0xd000, 0xd3ff, videoram_w, &videoram, &videoram_size },
  94.     { 0xd400, 0xd7ff, colorram_w, &colorram },
  95.     { 0xd800, 0xd801, MWA_RAM, &exedexes_nbg_yscroll },
  96.     { 0xd802, 0xd803, MWA_RAM, &exedexes_nbg_xscroll },
  97.     { 0xd804, 0xd805, MWA_RAM, &exedexes_bg_scroll },
  98.     { 0xe000, 0xefff, MWA_RAM },
  99.     { 0xf000, 0xffff, MWA_RAM, &spriteram, &spriteram_size },
  100.     { -1 }    /* end of table */
  101. };
  102.  
  103.  
  104.  
  105. static struct MemoryReadAddress sound_readmem[] =
  106. {
  107.     { 0x0000, 0x3fff, MRA_ROM },
  108.     { 0x4000, 0x47ff, MRA_RAM },
  109.     { 0x6000, 0x6000, soundlatch_r },
  110.     { -1 }    /* end of table */
  111. };
  112.  
  113. static struct MemoryWriteAddress sound_writemem[] =
  114. {
  115.     { 0x0000, 0x3fff, MWA_ROM },
  116.     { 0x4000, 0x47ff, MWA_RAM },
  117.     { 0x8000, 0x8000, AY8910_control_port_0_w },
  118.     { 0x8001, 0x8001, AY8910_write_port_0_w },
  119.     { 0x8002, 0x8002, SN76496_0_w },
  120.     { 0x8003, 0x8003, SN76496_1_w },
  121.     { -1 }    /* end of table */
  122. };
  123.  
  124.  
  125.  
  126. INPUT_PORTS_START( exedexes )
  127.     PORT_START    /* IN0 */
  128.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
  129.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
  130.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  131.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  132.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  133.     PORT_BIT_IMPULSE( 0x20, IP_ACTIVE_LOW, IPT_COIN3, 8 )
  134.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
  135.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
  136.  
  137.     PORT_START    /* IN1 */
  138.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
  139.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
  140.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
  141.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
  142.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
  143.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
  144.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  145.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  146.  
  147.     PORT_START    /* IN2 */
  148.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  149.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER2 )
  150.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER2 )
  151.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER2 )
  152.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  153.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  154.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  155.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )    /* probably unused */
  156.  
  157.     PORT_START    /* DSW0 */
  158.     PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) )
  159.     PORT_DIPSETTING(    0x02, "Easy" )
  160.     PORT_DIPSETTING(    0x03, "Normal" )
  161.     PORT_DIPSETTING(    0x01, "Hard" )
  162.     PORT_DIPSETTING(    0x00, "Hardest" )
  163.     PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
  164.     PORT_DIPSETTING(    0x08, "1" )
  165.     PORT_DIPSETTING(    0x04, "2" )
  166.     PORT_DIPSETTING(    0x0c, "3" )
  167.     PORT_DIPSETTING(    0x00, "5" )
  168.     PORT_DIPNAME( 0x10, 0x10, "2 Players Game" )
  169.     PORT_DIPSETTING(    0x00, "1 Credit" )
  170.     PORT_DIPSETTING(    0x10, "2 Credits" )
  171.     PORT_DIPNAME( 0x20, 0x00, "Language" )
  172.     PORT_DIPSETTING(    0x00, "English")
  173.     PORT_DIPSETTING(    0x20, "Japanese")
  174.     PORT_DIPNAME( 0x40, 0x40, "Freeze" )
  175.     PORT_DIPSETTING(    0x40, DEF_STR( Off ))
  176.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  177.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  178.  
  179.     PORT_START      /* DSW1 */
  180.     PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_B ) )
  181.     PORT_DIPSETTING(    0x00, DEF_STR( 4C_1C ))
  182.     PORT_DIPSETTING(    0x01, DEF_STR( 3C_1C ) )
  183.     PORT_DIPSETTING(    0x02, DEF_STR( 2C_1C ) )
  184.     PORT_DIPSETTING(    0x07, DEF_STR( 1C_1C ) )
  185.     PORT_DIPSETTING(    0x06, DEF_STR( 1C_2C ) )
  186.     PORT_DIPSETTING(    0x05, DEF_STR( 1C_3C ) )
  187.     PORT_DIPSETTING(    0x04, DEF_STR( 1C_4C ) )
  188.     PORT_DIPSETTING(    0x03, DEF_STR( 1C_5C ) )
  189.     PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_A ) )
  190.     PORT_DIPSETTING(    0x00, DEF_STR( 4C_1C ))
  191.     PORT_DIPSETTING(    0x08, DEF_STR( 3C_1C ) )
  192.     PORT_DIPSETTING(    0x10, DEF_STR( 2C_1C ) )
  193.     PORT_DIPSETTING(    0x38, DEF_STR( 1C_1C ) )
  194.     PORT_DIPSETTING(    0x30, DEF_STR( 1C_2C ) )
  195.     PORT_DIPSETTING(    0x28, DEF_STR( 1C_3C ) )
  196.     PORT_DIPSETTING(    0x20, DEF_STR( 1C_4C ) )
  197.     PORT_DIPSETTING(    0x18, DEF_STR( 1C_5C ) )
  198.     PORT_DIPNAME( 0x40, 0x40, "Allow Continue" )
  199.     PORT_DIPSETTING(    0x00, DEF_STR( No ) )
  200.     PORT_DIPSETTING(    0x40, DEF_STR( Yes ) )
  201.     PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) )
  202.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  203.     PORT_DIPSETTING(    0x80, DEF_STR( On ) )
  204. INPUT_PORTS_END
  205.  
  206.  
  207.  
  208.  
  209. static struct GfxLayout charlayout =
  210. {
  211.     8,8,    /* 8*8 characters */
  212.     512,    /* 512 characters */
  213.     2,    /* 2 bits per pixel */
  214.     { 4, 0 },
  215.     { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3 },
  216.     { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 },
  217.     16*8    /* every char takes 16 consecutive bytes */
  218. };
  219. static struct GfxLayout spritelayout =
  220. {
  221.     16,16,    /* 16*16 sprites */
  222.         256,    /* 256 sprites */
  223.         4,      /* 4 bits per pixel */
  224.         { 0x4000*8+4, 0x4000*8+0, 4, 0 },
  225.     { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3,
  226.             32*8+0, 32*8+1, 32*8+2, 32*8+3, 33*8+0, 33*8+1, 33*8+2, 33*8+3 },
  227.     { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
  228.             8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16 },
  229.     64*8    /* every sprite takes 64 consecutive bytes */
  230. };
  231. static struct GfxLayout tilelayout =
  232. {
  233.     32,32,  /* 32*32 tiles */
  234.     64,    /* 64 tiles */
  235.     2,      /* 2 bits per pixel */
  236.     { 4, 0 },
  237.     { 0, 1, 2, 3, 8+0, 8+1, 8+2, 8+3,
  238.             64*8+0, 64*8+1, 64*8+2, 64*8+3, 65*8+0, 65*8+1, 65*8+2, 65*8+3,
  239.             128*8+0, 128*8+1, 128*8+2, 128*8+3, 129*8+0, 129*8+1, 129*8+2, 129*8+3,
  240.             192*8+0, 192*8+1, 192*8+2, 192*8+3, 193*8+0, 193*8+1, 193*8+2, 193*8+3 },
  241.     { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
  242.             8*16, 9*16, 10*16, 11*16, 12*16, 13*16, 14*16, 15*16,
  243.             16*16, 17*16, 18*16, 19*16, 20*16, 21*16, 22*16, 23*16,
  244.             24*16, 25*16, 26*16, 27*16, 28*16, 29*16, 30*16, 31*16 },
  245.     256*8    /* every tile takes 256 consecutive bytes */
  246. };
  247.  
  248.  
  249.  
  250. static struct GfxDecodeInfo gfxdecodeinfo[] =
  251. {
  252.     { REGION_GFX1, 0, &charlayout,              0, 64 },
  253.     { REGION_GFX2, 0, &tilelayout,           64*4, 64 }, /* 32x32 Tiles */
  254.     { REGION_GFX3, 0, &spritelayout,       2*64*4, 16 }, /* 16x16 Tiles */
  255.     { REGION_GFX4, 0, &spritelayout, 2*64*4+16*16, 16 }, /* Sprites */
  256.     { -1 } /* end of array */
  257. };
  258.  
  259.  
  260.  
  261. static struct AY8910interface ay8910_interface =
  262. {
  263.     2,    /* 2 chips */
  264.     1500000,    /* 1.5 MHz ? */
  265.     { 15, 15 },
  266.     { 0 },
  267.     { 0 },
  268.     { 0 },
  269.     { 0 }
  270. };
  271.  
  272. static struct SN76496interface sn76496_interface =
  273. {
  274.     2,    /* 2 chips */
  275.     { 3000000, 3000000 },    /* 3 MHz????? */
  276.     { 30, 30 }
  277. };
  278.  
  279.  
  280.  
  281. static struct MachineDriver machine_driver_exedexes =
  282. {
  283.     /* basic machine hardware */
  284.     {
  285.         {
  286.             CPU_Z80,
  287.             4000000,    /* 4 Mhz (?) */
  288.             readmem,writemem,0,0,
  289.             c1942_interrupt,2
  290.         },
  291.         {
  292.             CPU_Z80 | CPU_AUDIO_CPU,
  293.             3000000,    /* 3 Mhz ??? */
  294.             sound_readmem,sound_writemem,0,0,
  295.             interrupt,4
  296.         }
  297.     },
  298.     60, DEFAULT_60HZ_VBLANK_DURATION,    /* frames per second, vblank duration */
  299.     1,    /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
  300.     0,
  301.  
  302.     /* video hardware */
  303.     32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
  304.     gfxdecodeinfo,
  305.     256,64*4+64*4+16*16+16*16,
  306.     exedexes_vh_convert_color_prom,
  307.  
  308.     VIDEO_TYPE_RASTER,
  309.     0,
  310.     generic_vh_start,
  311.     generic_vh_stop,
  312.     exedexes_vh_screenrefresh,
  313.  
  314.     /* sound hardware */
  315.     0,0,0,0,
  316.     {
  317.         {
  318.             SOUND_AY8910,
  319.             &ay8910_interface
  320.         },
  321.         {
  322.             SOUND_SN76496,
  323.             &sn76496_interface
  324.         }
  325.     }
  326. };
  327.  
  328.  
  329.  
  330. ROM_START( exedexes )
  331.     ROM_REGION( 0x10000, REGION_CPU1 )     /* 64k for code */
  332.     ROM_LOAD( "11m_ee04.bin", 0x0000, 0x4000, 0x44140dbd )
  333.     ROM_LOAD( "10m_ee03.bin", 0x4000, 0x4000, 0xbf72cfba )
  334.     ROM_LOAD( "09m_ee02.bin", 0x8000, 0x4000, 0x7ad95e2f )
  335.  
  336.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  337.     ROM_LOAD( "11e_ee01.bin", 0x00000, 0x4000, 0x73cdf3b2 )
  338.  
  339.     ROM_REGION( 0x02000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  340.     ROM_LOAD( "05c_ee00.bin", 0x00000, 0x2000, 0xcadb75bd ) /* Characters */
  341.  
  342.     ROM_REGION( 0x04000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  343.     ROM_LOAD( "h01_ee08.bin", 0x00000, 0x4000, 0x96a65c1d ) /* 32x32 tiles planes 0-1 */
  344.  
  345.     ROM_REGION( 0x08000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  346.     ROM_LOAD( "a03_ee06.bin", 0x00000, 0x4000, 0x6039bdd1 ) /* 16x16 tiles planes 0-1 */
  347.     ROM_LOAD( "a02_ee05.bin", 0x04000, 0x4000, 0xb32d8252 ) /* 16x16 tiles planes 2-3 */
  348.  
  349.     ROM_REGION( 0x08000, REGION_GFX4 | REGIONFLAG_DISPOSE )
  350.     ROM_LOAD( "j11_ee10.bin", 0x00000, 0x4000, 0xbc83e265 ) /* Sprites planes 0-1 */
  351.     ROM_LOAD( "j12_ee11.bin", 0x04000, 0x4000, 0x0e0f300d ) /* Sprites planes 2-3 */
  352.  
  353.     ROM_REGION( 0x6000, REGION_GFX5 )    /* background tilemaps */
  354.     ROM_LOAD( "c01_ee07.bin", 0x0000, 0x4000, 0x3625a68d )    /* Front Tile Map */
  355.     ROM_LOAD( "h04_ee09.bin", 0x4000, 0x2000, 0x6057c907 )    /* Back Tile map */
  356.  
  357.     ROM_REGION( 0x0800, REGION_PROMS )
  358.     ROM_LOAD( "02d_e-02.bin", 0x0000, 0x0100, 0x8d0d5935 )    /* red component */
  359.     ROM_LOAD( "03d_e-03.bin", 0x0100, 0x0100, 0xd3c17efc )    /* green component */
  360.     ROM_LOAD( "04d_e-04.bin", 0x0200, 0x0100, 0x58ba964c )    /* blue component */
  361.     ROM_LOAD( "06f_e-05.bin", 0x0300, 0x0100, 0x35a03579 )    /* char lookup table */
  362.     ROM_LOAD( "l04_e-10.bin", 0x0400, 0x0100, 0x1dfad87a )    /* 32x32 tile lookup table */
  363.     ROM_LOAD( "c04_e-07.bin", 0x0500, 0x0100, 0x850064e0 )    /* 16x16 tile lookup table */
  364.     ROM_LOAD( "l09_e-11.bin", 0x0600, 0x0100, 0x2bb68710 )    /* sprite lookup table */
  365.     ROM_LOAD( "l10_e-12.bin", 0x0700, 0x0100, 0x173184ef )    /* sprite palette bank */
  366. ROM_END
  367.  
  368. ROM_START( savgbees )
  369.     ROM_REGION( 0x10000, REGION_CPU1 )     /* 64k for code */
  370.     ROM_LOAD( "ee04e.11m",    0x0000, 0x4000, 0xc0caf442 )
  371.     ROM_LOAD( "ee03e.10m",    0x4000, 0x4000, 0x9cd70ae1 )
  372.     ROM_LOAD( "ee02e.9m",     0x8000, 0x4000, 0xa04e6368 )
  373.  
  374.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  375.     ROM_LOAD( "ee01e.11e",    0x00000, 0x4000, 0x93d3f952 )
  376.  
  377.     ROM_REGION( 0x02000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  378.     ROM_LOAD( "ee00e.5c",     0x00000, 0x2000, 0x5972f95f ) /* Characters */
  379.  
  380.     ROM_REGION( 0x04000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  381.     ROM_LOAD( "h01_ee08.bin", 0x00000, 0x4000, 0x96a65c1d ) /* 32x32 tiles planes 0-1 */
  382.  
  383.     ROM_REGION( 0x08000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  384.     ROM_LOAD( "a03_ee06.bin", 0x00000, 0x4000, 0x6039bdd1 ) /* 16x16 tiles planes 0-1 */
  385.     ROM_LOAD( "a02_ee05.bin", 0x04000, 0x4000, 0xb32d8252 ) /* 16x16 tiles planes 2-3 */
  386.  
  387.     ROM_REGION( 0x08000, REGION_GFX4 | REGIONFLAG_DISPOSE )
  388.     ROM_LOAD( "j11_ee10.bin", 0x00000, 0x4000, 0xbc83e265 ) /* Sprites planes 0-1 */
  389.     ROM_LOAD( "j12_ee11.bin", 0x04000, 0x4000, 0x0e0f300d ) /* Sprites planes 2-3 */
  390.  
  391.     ROM_REGION( 0x6000, REGION_GFX5 )    /* background tilemaps */
  392.     ROM_LOAD( "c01_ee07.bin", 0x0000, 0x4000, 0x3625a68d )    /* Front Tile Map */
  393.     ROM_LOAD( "h04_ee09.bin", 0x4000, 0x2000, 0x6057c907 )    /* Back Tile map */
  394.  
  395.     ROM_REGION( 0x0800, REGION_PROMS )
  396.     ROM_LOAD( "02d_e-02.bin", 0x0000, 0x0100, 0x8d0d5935 )    /* red component */
  397.     ROM_LOAD( "03d_e-03.bin", 0x0100, 0x0100, 0xd3c17efc )    /* green component */
  398.     ROM_LOAD( "04d_e-04.bin", 0x0200, 0x0100, 0x58ba964c )    /* blue component */
  399.     ROM_LOAD( "06f_e-05.bin", 0x0300, 0x0100, 0x35a03579 )    /* char lookup table */
  400.     ROM_LOAD( "l04_e-10.bin", 0x0400, 0x0100, 0x1dfad87a )    /* 32x32 tile lookup table */
  401.     ROM_LOAD( "c04_e-07.bin", 0x0500, 0x0100, 0x850064e0 )    /* 16x16 tile lookup table */
  402.     ROM_LOAD( "l09_e-11.bin", 0x0600, 0x0100, 0x2bb68710 )    /* sprite lookup table */
  403.     ROM_LOAD( "l10_e-12.bin", 0x0700, 0x0100, 0x173184ef )    /* sprite palette bank */
  404. ROM_END
  405.  
  406.  
  407.  
  408. GAMEX( 1985, exedexes, 0,        exedexes, exedexes, 0, ROT270, "Capcom", "Exed Exes", GAME_NO_COCKTAIL )
  409. GAMEX( 1985, savgbees, exedexes, exedexes, exedexes, 0, ROT270, "Capcom (Memetron license)", "Savage Bees", GAME_NO_COCKTAIL )
  410.